#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL.Math;
using Cephei.QL.Methods.Finitedifferences.Meshers;
using Cephei.QL.Methods.Finitedifferences.Utilities;
namespace Cephei.QL.Experimental.Finitedifferences
{
    /// <summary> 
	/// 
	/// </summary>
    [Guid ("DA77292B-1CC1-4f78-A3CC-C55B94A8F51E"),ComVisible(true)]
	public interface IFdmVPPStepCondition 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        /// <summary> 
		/// 
		/// </summary>
		 IFdmVPPStepCondition ApplyTo(Cephei.QL.Math.IArray a, Double t);
    }   

    /// <summary> 
	///  Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IFdmVPPStepCondition_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IFdmVPPStepCondition Create (Double heatRate, Double pMin, Double pMax, UInt64 tMinUp, UInt64 tMinDown, Double startUpFuel, Double startUpFixCost, Double carbonPrice, UInt64 stateDirection, Cephei.QL.Methods.Finitedifferences.Meshers.IFdmMesher mesher, Cephei.QL.Methods.Finitedifferences.Utilities.IFdmInnerValueCalculator gasPrice, Cephei.QL.Methods.Finitedifferences.Utilities.IFdmInnerValueCalculator sparkSpreadPrice);
    }
}

